
/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  pool.preprocess.operation;

import java.util.Hashtable;

import logger.PoolLogger;
import logger.ProcessLogger;
import calculation.Calculation;

import pool.tablename.Pool;
import database.RecordSearch;
import dbmanager.Column;
import dbmanager.DBManager;

public class Expression implements Operation
{	
	String object;
	public Pool pool;
	RecordSearch rs;
	public String tablename;
	public String result[];
	PoolLogger pl;
	
	public Expression() {
		// logger
		pl = (PoolLogger) PoolLogger.getLogger(this.getClass().getName());
	}
		
	public void getResult() 
	{
		Hashtable<Object, Object> Condition = new Hashtable<Object, Object>();
		Condition.put("mid", object);
		Condition.put("td", "null"); 
		rs.setConditionMap(Condition);
		result = rs.getArrayFromResultSet();
		ProcessLogger processlogger = new ProcessLogger();
		result =processlogger.sortArrayIndex(result, Column.ref_index-1);
		Calculation calculation = new Calculation(this);
		calculation.Calculation expr =  calculation.getResult();
		pool.setHashtable(expr.TransactionDetailMap);
		pool.setmasterHashtabel(expr.TransactionMap);
	}

	
	public void initPool() 
	{	
		rs =new RecordSearch();
	}

	
	public void setObject(String object,Pool pool,String tablename) 
	{	
		this.object = object;
		this.pool = pool;
		this.tablename = tablename;
	}

}
